﻿#ifndef __AF_SYSINCDEF_WIN32_H__
#define __AF_SYSINCDEF_WIN32_H__

#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <memory.h>
#include <io.h>
#include <iostream>
#include <fstream>

#include <string>
#include <vector>
#include <map>

// 忽略安全函数警告
#pragma warning(disable:4996)

// 类型
#define _STRING			std::string
#define _VECTOR			std::vector
#define _MAP			std::map

// 数据流
#define _FSTREAM		std::fstream
#define _IFSTREAM		std::ifstream
#define _OFSTREAM		std::ofstream

// 控制台输出操作
#define _COUT			std::cout
#define _CIN			std::cin
#define _ENDL			std::endl

// 控制台输出操作
#define _PRINTF			printf
#define _SPRINTF		sprintf
#define _VSNPRINTF		_vsnprintf_c

// 内存操作
#define _MEMSET			memset
#define _MEMCMP			memcmp
#define _MEMCPY			memcpy
#define _MEMMOVE		memmove

// char字符串操作
#define _STRCPY			strcpy
#define _STRCAT			strcat
#define _STRCMP			strcmp
#define _STRLEN			strlen

// 可变参数操作
#define	_VA_LIST		va_list
#define _VA_START		va_start
#define _VA_ARG			va_arg
#define _VA_END			va_end

// 文件目录系统操作
#define _FINDDATA		_finddata_t
#define _FINDFIRST		_findfirst
#define _FINDNEXT		_findnext
#define _FINDCLOSE		_findclose

#define _FS_KIND_DIR			_A_SUBDIR
#define _FS_KIND_FILE			_A_ARCH
#define _FS_DIR_ERROR			-1l
#define _FS_DIR				long
#define _FS_DATA			_finddata_t
#define _FS_OPEN(_szPath, _DIR, _DATA)	(_DIR = _findfirst(_szPath, &_DATA))
#define _FS_READ(_DIR, _DATA)		_findnext(_DIR, &_DATA)
#define _FS_CLOSE(_DIR)			_findclose(_DIR)

#define _FS_DATA_NAME(_DATA, _strName)	_DATA.name
#define _FS_DATA_SIZE(_DATA, _nSize)	_DATA.size
#define _FS_DATA_ISKIND(_DATE, _KIND)	(((_DATE.attrib & _KIND) == _KIND) ? true : false)



#endif